package 链表;

import list.ListNode;

/**
 * 给你单链表的头结点 head ，请你找出并返回链表的中间结点。
 *
 * 如果有两个中间结点，则返回第二个中间结点。
 * head = [1,2,3,4,5,6]
 * 输出：3,,4
 * @author macy
 * @date 2025/11/4 16:55
 */
public class MiddleListNode {

    public static void main(String[] args) {

    }

    public ListNode middleNode(ListNode head) {
        if(head==null || head.next==null){
            return head;
        }

        //快慢指针
        ListNode slow=head;
        ListNode fast=head;
        while(fast!=null && fast.next!=null){
            slow=slow.next;
            fast=fast.next.next;
        }
        return slow;
    }

}
